<?php

namespace app\model;

use think\Model;

/**
 * 部门模型
 */
class Department extends Model
{
    // 表名
    protected $name = 'department';

    // 自动写入时间戳
    protected $autoWriteTimestamp = true;

    // 时间戳字段名
    protected $createTime = 'create_time';
    protected $updateTime = 'update_time';

    /**
     * 获取部门下的所有岗位
     * @return \think\model\relation\HasMany
     */
    public function positions()
    {
        return $this->hasMany(Position::class, 'department_id');
    }

    /**
     * 获取所有部门列表
     * @return array
     */
    public static function getList()
    {
        return self::order('id', 'asc')->select()->toArray();
    }

    /**
     * 根据ID获取部门信息
     * @param int $id 部门ID
     * @return array|null
     */
    public static function getById(int $id)
    {
        return self::find($id);
    }

    /**
     * 添加部门
     * @param array $data 部门数据
     * @return bool|int
     */
    public static function add(array $data)
    {
        return self::create($data)->id;
    }

    /**
     * 更新部门
     * @param int $id 部门ID
     * @param array $data 部门数据
     * @return bool
     */
    public static function updateById(int $id, array $data)
    {
        return self::where('id', $id)->update($data);
    }

    /**
     * 删除部门
     * @param int $id 部门ID
     * @return bool
     */
    public static function deleteById(int $id)
    {
        return self::destroy($id);
    }
}